1) Field of the Invention
The present invention relates to a technique applicable to a magnetic disk control unit intervening between a host unit and a magnetic disk unit for executing write/read control in/from the magnetic disk unit in accordance with an input/output signal from the host unit, and more particularly to a magnetic disk control unit incorporating an active-interchange function to interchange, or replace, firmwares during its operation on connection to the host unit, and a firmware active-interchange method to be conducted therein.
2) Description of the Related Art
With reference to FIG. 10, a description will be made hereinbelow of an arrangement of a common magnetic disk control unit and an arrangement of a system including that magnetic disk control unit. As shown in FIG. 10, between a CPU 10 serving as a host unit and a magnetic disk unit 30, there is interposed a magnetic disk control unit (FCU: File Control Unit) 20 which takes charge of write/read control in/from the magnetic disk unit 30 according to an input/output signal (which will sometimes be referred hereinafter to as an I/O) from the CPU 10.
This magnetic disk control unit 20 is composed of CAs (Channel Adapters) 21, a cache memory 22, DAs (Device Adapters) 23, a CFE (Cache Function Engine) 24, a RM (Resource Manager) 25 and a built-in disk 26.
In this arrangement, the CAs 21 are respectively placed in channels for establishing connections between the CPU 10 and the magnetic disk control unit 20, and as will be described herein later, are for conducting processing depending upon an I/O (interruption) from the CPU 10 or an interruption occurring within the magnetic disk control unit 20. In the illustration of FIG. 10, as an example, four channels (paths) are provided between the CPU 10 and the magnetic disk control unit 20.
The cache memory 22 is for temporarily storing data to be written from the CPU 10 into the magnetic disk unit 30 or data to be read out from the magnetic disk unit 30 to the CPU 10, and is under control of the CFE 24.
The DAs 23 are respectively put in paths for setting up connections between the magnetic disk control unit 20 and the magnetic disk unit 30, and conduct access processing to the magnetic disk unit 30, or perform processing for a response from the magnetic disk unit 30 in relation to that access. FIG. 10 illustrates an example in which four paths are placed between the magnetic disk control unit 20 and the magnetic disk unit 30.
The RM 25 acts to manage the whole magnetic disk control unit 20 comprising a plurality of functional modules (numerals 21, 23, 24) mentioned above.
Each of the aforesaid CAs 21, DAs 23, CFE 24 and RM 25 is constructed as a firmware (for example, a microprogram fixedly put through a ROM or the like into a hardware).
The built-in disk 26 is for retaining firmwares constituting the CAs 21, the DAs 23, the CFE 24 and the RM 25, which are written in ROMs on printed-circuit boards (CAs 21, DAs 23, CFE 24 and RM 25) composing the magnetic disk control circuit 20 at the start of the magnetic disk control unit 20. In addition, the built-in disk 26 is made to hold firmwares, for example, corresponding to four generations (four versions), and as will be mentioned herein later, is designed to exchange a firmware in use for a firmware held in this built-in disk 26 at the interchange between firmwares.
For the version-up to deal with functional changes, additions or the like in the above-mentioned magnetic disk control unit 20, the interchange between firmwares has taken place. In a prior art, this firmware interchange has been done in the off-line condition between the CPU 10 and the magnetic disk control unit 20, with the off-line condition being again switched to the on-line condition after the completion of the interchange. Accordingly, the off-line condition remains during the firmware interchange, thus interrupting the system.
However, recently, the system has frequently been required to operate for 24 hours, and therefore, to avoid the system interruption resulting from the off-line condition between the CPU 10 and the magnetic disk control unit 20 at the firmware interchange, there exists an expectation of being able to interchange firmwares without the occurrence of such an off-line condition (that is, while maintaining the on-line condition). Such an interchange to be conducted in a state where the on-line condition remains between the CPU 10 and the magnetic disk control unit 20 is called an active-interchange.
Secondly, a description will be taken hereinbelow of a prior firmware active-interchange method.
In the prior firmware active-interchange method, for accomplishing the firmware interchange in a state where the CPU 10 and the magnetic disk control unit 20 are in the on-line condition, a busy response (reply by a busy signal) takes place from the CAs 21 to the CPU 10 if an I/O comes in from the CPU 10 during the firmware interchange. In such a state, as will be mentioned herein later, a portion of the firmware constituting the CAs 21 is interchanged with the whole firmware (DAs 23, CFE 24 and RM 25) other than CAs 21.
Although the magnetic disk control unit 20 having the active-interchange function for interchanging firmwares during an operation on the connection with the CPU 10 is basically constructed as shown in FIG. 10, in the magnetic disk control unit 20 with the active-interchange function, the CAs 21 are equipped with a busy response function acting during the firmware interchange. Such a firmware structure of the CAs 21 is shown in FIG. 11.
A look at FIG. 11 shows that the prior CAs 21 firmware involves an interruption control section 41, an internal table area 42 and a firmware control section 43.
The interruption control section 41 refers to the contents (a pointer table or the like) of the internal table area 42 in accordance with an interruption (interruption such as an I/O from the CPU 10 and a communication between functional modules in the magnetic disk control unit 20), thereby advancing to an operation by a processing section (function) in the firmware control section 43.
Furthermore, when an I/O comes in from the CPU 10 during the firmware interchange in the magnetic disk control unit 20, the interruption control section 41 refers to the internal table area 42 and gives a busy signal as a reply to the CPU 10, with the reply based on the busy signal being recorded in the internal table area 42.
The internal table area 42 is for the purpose of keeping a variety of data the control needs, and includes a pointer table for indication of addresses of various kinds of functions and a variable table for retention of various kinds of variables for the firmware control section 43. The variable table involves areas, such as (1) an area (a flag representative of that a firmware is in or under interchange, and others) for indicating the situation the firmware itself is presently placed in, (2) an area for storing whether or not a busy signal is given as a replay to the CPU 10, (3) an area for maintaining a path for the connection with the CPU 10 and a physical connection condition, and (4) an area for retaining data for each of the magnetic disk units to be connected to the magnetic disk control unit 20. In this case, the data held in the aforesaid areas (1) to (3) are required to surely exist before and after the firmware interchange.
The firmware control section 43 serves as an area to retain functions for the actual processing (access processing to, or proportionate to, an I/O, communications between functional modules, and others). For the function pointer control in the CAs 21, the values corresponding to the offset positions of various kinds of functions retained in the firmware control section 43 are put in the pointer table of the internal table area 42. Further, the interruption control section 41 reads out a value to the interruption from the pointer table, and reads out the function (processing section) at the offset position corresponding to that value from the firmware control section 43, thereby conducting the processing to the interruption.
In addition, when the firmware is in a ready condition, the firmware control section 43 refers to the internal table area 42 to verify the reply by the busy signal causing the I/O (CPU 10), and sends a CUEND (Control Unit END) as a reply in relation to that I/O.
An operation of the interruption control section 41 will be described hereinbelow with reference to the flow chart (steps S1 to S6) of FIG. 12.
When the magnetic disk control unit 20 is in a ready condition, the firmware operates at a ready-condition processing section within the firmware control section 43. On the occurrence of an interruption, the processing is brought from the ready-condition processing section to the interruption control section 41.
The interruption control section 41 checks whether or not that interruption is I/O processing from the CPU 10 (step S1).
If being not the I/O processing from the CPU 10 (NO route), the interruption is determined as being an interruption, such as inter-functional-module communication processing, which is to end within the magnetic disk control unit 20. In this case, the interruption control section 41 refers to the contents (a pointer table or the like) of the internal table area 42 to conduct an operation by a processing section (other than the I/O processing) dealing with that interruption (step S2). That is, the interruption control section 41, as mentioned before, reads out a value to that interruption from the pointer table of the internal table area 42 and further reads out a function (processing section) at the offset position corresponding to that value from the firmware control section 43, thereby conducting the processing in relation to the interruption.
Incidentally, where the magnetic disk control unit 20 is in a firmware interchange operation, each of the firmwares (functional modules) organizing the magnetic disk control unit 20, off-course, understands the situation in which the firmware interchange is taking place. Accordingly, there is no possibility of the occurrence of an interruption other than the I/O processing during the firmware interchange, and hence, no decision as to whether or not being in the middle of the firmware interchange is made for the interruption undergoing the negative decision in the step S1.
On the other hand, in the case that an interruption coming into existence is the I/O processing from the CPU 10 (YES route of step S1), a decision is made on whether or not being now in the middle of the firmware interchange (step S3). This decision depends upon viewing a flag in the variable table of the internal table area 42.
If not in the firmware interchange (NO route), as usual, the interruption control section 41 reads out a value to that I/O processing from the pointer table of the internal table area 42, and further reads out a function (I/O processing section) at the offset position corresponding to that value, thus conducting processing for the I/O (step S4).
If being in the firmware interchange (YES route of step S3), the interruption control section 41 informs the CPU 10 of being the busy condition by giving a busy signal as a reply thereto (step S5). At this time, the report on the busy condition to the CPU 10 is put in the internal table area 42 (step S6).
When the magnetic disk control unit 20 starts after the completion of the firmware interchange, the control shifts from the interruption control section 41 to the aforesaid ready-condition processing section. At this time, by referring to the internal table area 42, a decision is made on whether or not the reply by the busy signal is given during the firmware interchange, and only on the occurrence of a replay by the busy signal, a CUEND signal is forwarded to the CPU 10 to make a report to the effect of its being released from the busy condition.
Now, a description will be given hereinbelow of a prior procedure to be taken for when the magnetic disk control unit 20 having the above-mentioned interruption control section 41(CA 21) makes the active-interchange between firmwares.
For the start of the active-interchange, a flag indicative of being in the middle of the firmware interchange is set in the internal table area 42, and all the I/O from the CPU 10, already cued in the interruption control section 41, are put into processing.
Following this, the firmware control section 43 of the CA 21 is interchanged with all the firmwares (DA 23, CFE 24 and RM 25) other than the CA 21.
At this time, since the interruption control section 41 is required to make a busy reply to the CPU 10 issuing the I/O during the firmware interchange for the active-interchange, difficulty is encountered to replace the interruption control section 41. In addition, since the internal table area 422 retains the data (the aforesaid areas mentioned with the items (1) to (3)) necessary before and after the firmware interchange so that partial interchange is impossible, the interchange of the internal table area 42 is also difficult.
As mentioned above, in the middle of the firmware interchange (while the flag indicating that the firmware is in interchange is set), on transmission of an I/O from the CPU 10, the interruption control section 41 offers a busy response to the CPU 10. Whereupon, the firmware interchange is feasible in a state where the on-line condition between the CPU 10 and the magnetic disk control unit 20 remains.
On completion of the firmware interchange, the flag for indicating that the firmware is in interchange (which will sometimes referred hereinafter to as firmware-in-interchange) is released from the setting, and subsequently, the magnetic disk control unit 20 starts and sends a CUEND signal to the CPU 10 to make a report to the effect of being released from the busy condition, before restarting the ordinary operation.
In the prior firmware active-interchange method, as mentioned above, the interruption control section 41 needs to operate using the data of the internal table area 42 during the active interchange, besides the internal table area 42 needs to keep the data necessary before and after the interchange, and therefore, difficulty is encountered to accomplish the active-interchange of the interruption control section 41 and the internal table area 42.
For instance, where there is a need to interchange the interruption control section 41 or the internal table area 42 because of the presence of a bug, in the case of adding new data to the internal table area 42 for addition of a function, in the case of removing given data from the internal table area 42 for abandonment of a function, or when an alteration of a program occurs due to a change of a format, the prior firmware active-interchange method cannot cope with these events.
More specifically, in interchange the interruption control section 41 or the internal table area 42 in these cases, it becomes impossible to give a busy signal as a reply to the CPU 10, and therefore, there is no alternative but establishing the off-line condition between the CPU 10 and the magnetic disk control unit 20. However, even in the aforesaid cases, the system with the magnetic disk control unit 20 is required to certainly operate for 24 hours.
As an example in which a need for the addition of new data to the internal table area 42 exists, there is the case that the number of the magnetic disk units 30 connectable to the magnetic disk control unit 20 increases because of alteration of the system specification.
On the other hand, the interchange of the firmware control section 43 can cause a change of the addresses to the functions therein. In this case, naturally, there is a need to change the values held in the pointer table of the internal table area 42. To meet this requirement, in the prior art, the pointer table of the internal table area 42 is rewritten and updated in a state where the interruption control section 41 makes the busy response to the CPU 10. There is an additional problem which arises with the prior firmware active-interchange method, however, in that its firmware active-interchange takes longer time because of conducting such an updating operation.